<?php
class Serwis
{
	//protected $BD;
	
	function __construct(){
		
	}
	
	public function Dodaj($dane){
		// id_serwis, nazwa, opis, url, logo, aktywny, newsow, klikniec
		//echo 'dodaje, ';
		//if (empty($dane['id_serwis'])) $dane['id_serwis'] = $this->BD->Max('serwisy', 'id_serwis') + 1;
		/*
		 * FIXME nie wiem czy dobrze
		 */
      	$result = DB::get()->prepare('SELECT MAX("id_serwis") FROM "serwisy"');  
		$result->execute();  
		$dane = $result->fetch();  
		$dane = $dane['id_serwis'] + 1;  
		//$sql = "INSERT INTO `serwisy` (`id_serwis`, `nazwa`, `opis`, `url`, `logo`, `aktywny`, `newsow`, `klikniec`) 
		//VALUES ({$dane['id_serwis']}, '{$dane['nazwa']}', '{$dane['opis']}', '{$dane['url']}', '{$dane['logo']}', NULL, NULL, NULL);";
		//DB::get()->exec('INSERT INTO serwisy( VALUES("serwisy",$dane)');  
		/*$wynik = $this->BD->Insert('serwisy', $dane, true);
		if ($wynik == false){
			echo 'Nie mozna dodac serwisu przy pomocy tego zapytania. '.$sql;
			return false;
		}
		else{
			return true;
		}*/
	    $id_serwis = $dane['id_serwis'];
	    $nazwa = $dane['nazwa'];
	    $opis = $dane['opis'];
	    $url = $dane['url'];
	    $logo = $dane['logo'];
	    
	    
		$sql = "INSERT INTO serwisy (id_serwis,nazwa,opis,url,logo) VALUES (:id_serwis,:nazwa,:opis,:url,:logo)";
		$q = $conn->prepare($sql);
		$q->execute(array(':id_serwis'=>$author,
		                  ':nazwa'=>$nazwa,
		                  ':opis'=>$opis,
		                  ':url'=>$url,
		                  ':logo'=>$logo));

		
	}
	
	public function Usun($id_serwis){
		Log::info('probuje usunac serwis, ');
		
		$sql = "DELETE FROM `serwisy` WHERE `id_serwis` = :id_serwis";
		$q = $conn->prepare($sql);
		$q->execute(array(':id_serwis'=>$id_serwis));
		
		//return $this->BD->Zapytanie($sql, false, false);
	}
	
	public function Uaktualnij($dane){
		$id_serwis = $dane['id_serwis'];
	    $nazwa = $dane['nazwa'];
	    $opis = $dane['opis'];
	    $url = $dane['url'];
	    $logo = $dane['logo'];
		
		$sql = "UBDATE `serwisy` SET id_serwis = ?, nazwa = ?, opis = ?, url = ?, logo = ? 
				WHERE id_serwis = ? "; 
		$q = $conn->prepare($sql);
		$q->execute(array($id_serwis, $nazwa, $opis, $url, $logo));
		
		
		 
		
		
		//return $this->BD->Update('serwisy', $dane, 'id_serwis', true);
	}
	
	public function Dane($id = false){
		
		$id_serwis = $id;
		$sql = ($id == false) ? "SELECT * FROM `serwisy` ORDER BY `nazwa`" : "SELECT * FROM `serwisy` WHERE `id_serwis` = :id_serwis";
		
		/*$sql = ($id == false) ? "SELECT * FROM `serwisy` ORDER BY `nazwa`;" : "SELECT * FROM `serwisy` WHERE `id_serwis` = $id;";
		$wynik = $this->BD->Zapytanie($sql, true, true);
		if ($id != false) return $wynik[0];
		else return $wynik;*/
	}
	
	public function DaneAktywnych(){
		/*
		 * TODO jak to zamieni� ?
		 */
		$sql = "SELECT * FROM `serwisy` WHERE `aktywny` = 1 ORDER BY `nazwa`;";
		return $this->BD->Zapytanie($sql, true, true);
	}
	
	public function ZwiekszNewsy($id_serwis){
		/*$sql = "UPDATE `serwisy` SET `newsow` = `newsow` + 1 WHERE `id_serwis` = $id_serwis;";
		return $this->BD->Zapytanie($sql, false, true);*/
		DB::get()->exec("UPDATE `serwisy` SET `newsow` = `newsow` + 1 WHERE `id_serwis` = $id_serwis;");  
	}
	
	public function ZmniejszNewsy($id_serwis){
		/*$sql = "UPDATE `serwisy` SET `newsow` = `newsow` - 1 WHERE `id_serwis` = $id_serwis;";
		return $this->BD->Zapytanie($sql, false, true);*/
		DB::get()->exec("UPDATE `serwisy` SET `newsow` = `newsow` - 1 WHERE `id_serwis` = $id_serwis;");  
	}
	
	public function LiczbaNewsow($id_serwis){
		$sql = "SELECT `newsow` FROM `serwisy` WHERE `id_serwis` = $id_serwis;";
		return $this->BD->ZapytanieOLiczbe($sql);
		$result = DB::get()->prepare('SELECT MAX("id_serwis") FROM "serwisy"');  
		$result->execute();  
		$dane = $result->fetch();  
		$dane=$dane['pole'];  		
	}
	
	public function UaktualnijStatystyki(){
		$sql = "SELECT COUNT(id_news) newsow, id_serwis FROM newsy n GROUP BY id_serwis;";
		$dane = $this->BD->Zapytanie($sql, true, true);
		foreach ($dane as $indeks => $wartosc){
			$sql = "UPDATE `serwisy` SET `newsow` = {$wartosc['newsow']} WHERE `id_serwis` = {$wartosc['id_serwis']};";
			$this->BD->Zapytanie($sql, false, true);
		}
		$sql = "SELECT SUM(klikniec) klikniec, `id_serwis` FROM newsy GROUP BY id_serwis;";
		$dane = $this->BD->Zapytanie($sql, true, true);
		foreach ($dane as $indeks => $wartosc){
			$sql = "UPDATE `serwisy` SET `klikniec` = {$wartosc['klikniec']} WHERE `id_serwis` = {$wartosc['id_serwis']};";
			$this->BD->Zapytanie($sql, false, true);
		}
		return true;
	}
	
	public function Statystyki($top, $dziedzina){
		$sql = "SELECT * FROM `serwisy` ORDER BY `$dziedzina` DESC ";
		if ($top != false) $sql .= "LIMIT $top";
		$sql .= ";";
		$wszystkie_dane = $this->BD->Zapytanie($sql, true, true);
		$tmp;
		foreach ($wszystkie_dane as $nr => $dane){
			$tmp[$dane['id_serwis']] = $dane;
		}
		return $tmp;		
	}
	
	public function Klikniecie($id_serwis){
		/*$sql = "UPDATE `serwisy` SET `klikniec` = `klikniec` + 1 WHERE `id_serwis` = $id_serwis;";
		return $this->BD->Zapytanie($sql, false, true);*/
		DB::get()->exec("UPDATE `serwisy` SET `klikniec` = `klikniec` + 1 WHERE `id_serwis` = $id_serwis;");  
	}
	
	public function BotDaneAktywnych(){
		$sql = "SELECT * FROM `serwisy` WHERE `bot_aktywny` = 1 ORDER BY `nazwa`;";
		return $this->BD->Zapytanie($sql, true, true);
		
	}
	
	public function Liczba($czego = 'serwisow'){
		switch ($czego){
			case 'serwisow' : {
				$sql = "SELECT COUNT(*) FROM `serwisy`;";
			} break;
			case 'klikniec' : {
				$sql = "SELECT SUM(`klikniec`) FROM `serwisy`;";
			}
		}
		return $this->BD->ZapytanieOLiczbe($sql);
	}
}